﻿Imports System.Data.SqlClient
Public Class frm_xeplichthi

    Dim tbdgv As New DataTable
    Sub loadcbo()
        Dim cmd As SqlCommand
        Dim da As SqlDataAdapter
        Dim ds As New DataSet

        'load cbomalop
        cmd = New SqlCommand("sp_lop_loadcbo", conn)
        cmd.CommandType = CommandType.StoredProcedure

        da = New SqlDataAdapter(cmd)

        da.Fill(ds, "MaLop")

        cbomalop.DataSource = ds.Tables("MaLop")
        cbomalop.DisplayMember = "MaLop"
        cbomalop.DisplayMember = "MaLop"

        'load cbomaphong
        cmd = New SqlCommand("sp_phonghoc_loadcbo", conn)
        cmd.CommandType = CommandType.StoredProcedure

        da = New SqlDataAdapter(cmd)

        da.Fill(ds, "MaPhong")

        cbomaphong.DataSource = ds.Tables("MaPhong")
        cbomaphong.DisplayMember = "MaPhong"
        cbomaphong.DisplayMember = "MaPhong"

        'load cbomamon
        cmd = New SqlCommand("sp_monhoc_loadcbo", conn)
        cmd.CommandType = CommandType.StoredProcedure

        da = New SqlDataAdapter(cmd)

        da.Fill(ds, "MaMon")

        cbomamon.DataSource = ds.Tables("MaMon")
        cbomamon.DisplayMember = "MaMon"
        cbomamon.DisplayMember = "MaMon"

    End Sub

    Sub loadhienthi()
        Dim cmd As New SqlCommand("sp_lichthi_load", conn)
        cmd.CommandType = CommandType.StoredProcedure

        Dim da As New SqlDataAdapter(cmd)
        Dim t As New DataTable

        da.Fill(t)
        tbdgv = t
        dgvhienthi.DataSource = tbdgv

    End Sub
    Private Sub frm_xeplichthi_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        conn.Open()
        loadcbo()
        loadhienthi()
        cbomalop.Text = "-----Mời chọn mã lớp-----"
        cbomaphong.Text = "-----Mời chọn mã phòng-----"
        cbomamon.Text = "-----Mời chọn mã môn-----"
        dtpngaythi.Value = Now.Date
    End Sub

    Private Sub cmdthemsua_Click(sender As Object, e As EventArgs) Handles cmdthemsua.Click
        If cmdthemsua.Text = "Thêm" Then
            Try
                If dtpngaythi.Value <= Now.Date Then
                    MsgBox("Ngày thi phải lớn hơn ngày hiện tại!")
                    Exit Sub
                End If
                Dim cmd As New SqlCommand("sp_lichthi_them", conn)
                cmd.CommandType = CommandType.StoredProcedure

                cmd.Parameters.AddWithValue("@malop", cbomalop.Text)
                cmd.Parameters.AddWithValue("@maphong", cbomaphong.Text)
                cmd.Parameters.AddWithValue("@mamon", cbomamon.Text)
                cmd.Parameters.AddWithValue("@ngaythi", dtpngaythi.Value)

                Dim i As Integer = cmd.ExecuteNonQuery

                If i > 0 Then
                    MsgBox("Thêm lịch thi thành công!")
                    loadhienthi()
                    cbomalop.Text = "-----Mời chọn mã lớp-----"
                    cbomaphong.Text = "-----Mời chọn mã phòng-----"
                    cbomamon.Text = "-----Mời chọn mã môn-----"
                    dtpngaythi.Value = Now.Date
                Else
                    MsgBox("Thêm lịch thi không thành công!")
                End If
            Catch ex As Exception
                MsgBox("Mã lớp và mã phòng thi của lớp đó đã có rồi.")
            End Try
        End If
        If cmdthemsua.Text = "Sửa" Then
            Dim cmd As New SqlCommand("sp_lichthi_sua", conn)
            cmd.CommandType = CommandType.StoredProcedure

            cmd.Parameters.AddWithValue("@malop", cbomalop.Text)
            cmd.Parameters.AddWithValue("@maphong", cbomaphong.Text)
            cmd.Parameters.AddWithValue("@mamon", cbomamon.Text)
            cmd.Parameters.AddWithValue("@ngaythi", dtpngaythi.Value)

            Dim i As Integer = cmd.ExecuteNonQuery

            If i > 0 Then
                MsgBox("Sửa lịch thi thành công!")
                loadhienthi()
                cbomalop.Text = "-----Mời chọn mã lớp-----"
                cbomaphong.Text = "-----Mời chọn mã phòng-----"
                cbomamon.Text = "-----Mời chọn mã môn-----"
                dtpngaythi.Value = Now.Date
            Else
                MsgBox("Sửa lịch thi không thành công!")
            End If
        End If
    End Sub

    Private Sub cmdhuy_Click(sender As Object, e As EventArgs) Handles cmdhuy.Click
        cbomalop.Text = "-----Mời chọn mã lớp-----"
        cbomaphong.Text = "-----Mời chọn mã phòng-----"
        cbomamon.Text = "-----Mời chọn mã môn-----"
        dtpngaythi.Value = Now.Date
        cmdthemsua.Text = "Thêm"
    End Sub

    Private Sub cmdxoa_Click(sender As Object, e As EventArgs) Handles cmdxoa.Click
        Try
            Dim cmd As New SqlCommand("sp_lichthi_xoa", conn)
            cmd.CommandType = CommandType.StoredProcedure

            cmd.Parameters.AddWithValue("@malop", cbomalop.Text)
            cmd.Parameters.AddWithValue("@maphong", cbomaphong.Text)
            cmd.Parameters.AddWithValue("@mamon", Trim(cbomamon.Text))

            Dim i As Integer = cmd.ExecuteNonQuery

            If i > 0 Then
                MsgBox("Xóa lịch thi thành công!")
                loadhienthi()
                cbomamon.Text = "-----Mời chọn mã môn-----"
                cbomalop.Text = "-----Mời chọn mã lớp-----"
                cbomaphong.Text = "-----Mời chọn mã phòng-----"
                dtpngaythi.Value = Now.Date
            Else
                MsgBox("Xóa lịch thi không thành công!")
            End If
        Catch ex As Exception
            MsgBox("Không xóa được vì ràng buộc toàn vẹn!")
        End Try
    End Sub

    Private Sub dgvhienthi_Click(sender As Object, e As EventArgs) Handles dgvhienthi.Click
        Dim row As DataGridViewRow = dgvhienthi.CurrentRow
        cbomalop.Text = row.Cells.Item("MaLop").Value
        cbomaphong.Text = row.Cells.Item("MaPhong").Value
        dtpngaythi.Text = row.Cells.Item("NgayThi").Value
        cbomamon.Text = row.Cells.Item("MaMon").Value
        cmdthemsua.Text = "Sửa"
    End Sub
End Class